import { global } from "core-js";

//判断是不是手机并且不能使用微信支付
let isOpenIosGzhPay = function (moduleType) {
  let isIosWx = navigator.userAgent.toLowerCase().indexOf('mac') > -1 && navigator.userAgent.toLowerCase().indexOf('micromessenger') > -1;
  /* if (!moduleType && isIosWx) {
    return false;
  } */
  let gzhPayConfs = localStorage.getItem('iosGzhPayConfs') && JSON.parse(localStorage.getItem('iosGzhPayConfs'));
  //不在ios微信内 || 没有返回内容，默认可支付
  if (!isIosWx || !gzhPayConfs) {
    return true;
  }
  //后台设置为开启支付
  if (gzhPayConfs.iosGzhPayAll == 1) {
    return true;
  }
  const moduleTypeMap = global.moduleTypeMap;
  if (gzhPayConfs.iosGzhPayAll == -1 || gzhPayConfs[moduleTypeMap['' + moduleType]] == -1) {
    return false;
  }
  return true;
}

export function couponApplyText(value) {
  const { prodType, type, redeemType, enableTotalAmount, prodTypes, totalAmount } = value;
  let applyText = '';
  if (redeemType == 26) {
    applyText = (prodType == 200 ? '推广课程' : '全店商品') + '可用';
  } else if (redeemType == 24 || redeemType == 1000) {
    applyText = '指定商品可用';
  } else if (redeemType == 25) {
    applyText = '适用于商城商品';
  } else if (redeemType == 114) {
    applyText = '适用于预约师资功能';
  } else if (redeemType == 27 && Array.isArray(prodTypes)) {
    applyText = '适用于' + (prodTypes ? prodTypes.join('、') : '');
  } else {
    applyText = '指定商品可用';
  }
  // 兑换券是全店商品可用，不展示适用范围
  if (type == 1) {
    applyText = '';
  } else if (type == 5 && !!enableTotalAmount) {
    // 折扣券，有最多优惠
    applyText += `，最高可减${totalAmount}元`;
  }
  return applyText;
}

export function formatTime(value) {
  if (value != undefined && value != '' && value != null) {
    let str = value.replace(/-/g, "/");
    let strs = str.split(":");
    let endStr = strs[0] + ":" + strs[1];
    return endStr;
  } else {
    return value;
  }
}

export function moneyStr(value, optimal) {
  // 判断是否是小程序套壳ios，写在方法里，每次触发的时候再取一次，写最外层只取一次，有可能会有缓存
  let isWxAppIos = !!(localStorage.getItem('isWxAppIos') == 1) || false;
  if (value != null && Number(value) == 0 && (!optimal || (optimal.optimalPrice == 0))) {
    return "免费";
  } else {
    return isWxAppIos ? '' : (optimal ? (optimal.optimalPrice == 0 ? '免费' : optimal.optimalPrice) : value);
  }
}
/**
 *
 * @param {*} payType 支付类型
 * @param {*} price 商品价格
 * @param {*} prodType 商品类型
 * @param {*} optimal 商品最低价格对象
 * @param {*} fromType 区分价格判断来源 首页、列表页 价格为0 不返回符号
 *
 * @returns
 */
export function priceValueFilter(payType, price, prodType, optimal, fromType) {
  let isWxAppIos = !!(localStorage.getItem('isWxAppIos') == 1) || false;
  if (payType == 1) {
    return "免费";
  } else if (payType == 2 || prodType == 12) {
    if (optimal) {
      if (optimal.optimalPrice == 0) {
        // 特别需求 optimalPriceType != 1价格免费展示商品原价
        return fromType == 'index' && optimal && optimal.optimalPrice == 0 && optimal.optimalPriceType != 1 && price > 0 ? (!isWxAppIos ? price : '') : "免费";
      } else {
        return isWxAppIos ? '' : optimal.optimalPrice;
      }
    }
    return isWxAppIos ? '' : price;
  } else if (payType == 3) {
    return "加密";
  } else if (payType == 4) {
    if (prodType == global.ckFrom.camp || prodType == global.ckFrom.clockIn) { //训练营， 打卡 奖金参与
      return isWxAppIos ? '' : price;
    } else if (prodType == global.ckFrom.privateClass) { // 小班课代表审核参与
      return "审核参与";
    } else if (prodType == global.ckFrom.circle) {
      return "配套课程";
    } else {
      return isWxAppIos ? '' : price;
    }
  } else if (payType == 5) {
    return isWxAppIos ? '' : '购买指定课程参与';
  } else if (payType == 6) {
    return '指定学员';
  } else {
    // 若是活动类型价格的时候
    if (!isWxAppIos && (prodType == global.ckFrom.activity)) {
      if (price.split('~')[0] != price.split('~')[1] || Number(price.split('~')[0]) != 0) {
        if (price.split('~')[0] != price.split('~')[1]) {
          return price.split('~')[0] + '起'
        } else {
          return price.split('~')[1]
        }
      } else if (price.split('~')[0] == price.split('~')[1] && Number(price.split('~')[0]) == 0) {
        return '免费'
      }
    } else {
      return isWxAppIos ? '' : price;
    }
  }
}

/**
 *
 * @param {*} value 价格符号
 * @param {*} optimal 最低价格对象 价格为0 不返回符号
 * @returns
 */
export function iosPriceFilter(value, optimal) {
  let isWxAppIos = !!(localStorage.getItem('isWxAppIos') == 1) || false;
  const IS_IOS_APP = navigator.userAgent.indexOf("IOSLogin") > -1 || navigator.userAgent.indexOf('IOSNewLogin') > -1 || navigator.userAgent.indexOf("IOSNewApp") > -1;
  if ((value == '￥' || value == '元') && (isWxAppIos || IS_IOS_APP || !isOpenIosGzhPay())) {
    return "";
  } else {
    return (optimal && optimal.optimalPrice == 0) ? '' : value;
  }
}

export function iosPayText(value, moduleType) {
  let isWxAppIos = !!(localStorage.getItem('isWxAppIos') == 1) || false;
  if ((value.includes('付款') || value.includes('升级') || value.includes('购买') || value.includes('抢购') || value.includes('去参团') || value.includes('我要参团') || value.includes('我要开团') || value.includes('去拼团')) && (isWxAppIos || !isOpenIosGzhPay(moduleType))) {
    return isWxAppIos ? "咨询客服" : "立即体验";
  } else {
    return value;
  }
}

export function formatNumber(value) {
  let strNum = '';
  if (value != '' && Number(value) >= 0) {
    let n = Number(value);
    if (n > 9999) {
      strNum = Number(n / 10000).toFixed(1) + '万';
    } else {
      strNum = n;
    }
  } else {
    strNum = 0;
  }
  return strNum;
}
//将超过1w的专为x.xw 如12345=1.2w
export function formatTenThousand(value) {
  let strNum = '';
  if (value != '' && Number(value) >= 0) {
    let n = Number(value);
    if (n >= 10000) {
      strNum = ((n / 10000).toFixed(4) * 1).toFixed(1) + 'w';
    } else {
      strNum = n;
    }
  } else {
    strNum = 0;
  }
  return strNum;
}
//将数字如果是小数，只有一位那么就正常显示，如果是整数也正常显示，如果是多位小数，那么就显示2位小数
export function formatNumberOther(value) {
  let strNum = '';
  if (Number.isInteger(value)) {
    strNum = value;
  } else if (Number(value).toFixed(1) == Number(value)) {
    strNum = value;
  } else {
    strNum = Number(value).toFixed(2);
  }
  return strNum;
}
//给v-html中的图片更换路径，对其进行压缩
export function vhtmlImgC(valueStr) {
  if (valueStr.indexOf("<img") > -1) {
    let str = valueStr.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function (match, capture) {
      if ((capture.indexOf("https://") > -1 || capture.indexOf("http://") > -1) && capture.indexOf("?x-oss-process=style/common") == -1) {
        capture = capture + '?x-oss-process=style/common';
        match = match.replace(/src=".+(\.jpg|\.png|\.jpeg|\.JPEG|\.JPG|\.PNG)"/g, 'src="' + capture + '"');
      }
      return match
    });
    return str;
  } else {
    return valueStr;
  }
}

// 昵称转换加密
export function nickNameEncryption(value) {
  if (value == undefined && value == '' && value == null) return
  return value.length >= 2 ? value.substr(0, 1) + '***' + value.substr(-1) : value + '***';
}

// 保留两位小数四舍五入
export function toMyFixed2(str) {
  return (str * 1 + 0.00000001).toFixed(2) * 1;
}

// 昵称超过n位, 前n位+....显示
export function nickNameLimitLength(str, length) {
  if (str != undefined && str != '' && str != null) {
    return str.length > length ? str.substr(0, length) + "..." : str;
  } else {
    return str;
  }
}

export function hiddenLiveUserName(name, hiddenLiveUserName = false) {
  if (!hiddenLiveUserName) {
    return name;
  }

  if (name) {
    name = name.toString().replace(/^(.{3})(.+)/, '$1***')
  }
  return name;
}